1. Technical Field
The present invention relates to a computer file management system that employs a local filesystem and a custom filesystem.
2. Related Art
Computer systems store data by encoding the data in a binary format and storing the binary data on a storage device. Storage devices may include hard disks, optical media, flash media, and the like. A computer operating system may be used to control the physical storage and retrieval operations of the storage device. Similarly, filesystem software may be used to logically organize the encoded data in files and directories on the storage device. The filesystem may be provided as part of the computer operating system or may be a separate software component that interfaces with the computer operating system. In either instance, the filesystem provides a logical interface between software programs executed by the computer and the corresponding storage device.
Existing filesystems suffer from a number of problems which may result in the inefficient use of computer and network resources. For example, many users may not need access to all of the files available through the filesystem on a regular basis. Rather, many users may need access to only a subset of the available files. However, existing filesystems present the user with a large amount of unnecessary file and directory information that effectively obscures the file and directory information the user is trying to obtain. In an attempt to address this problem, personal subdirectories may be created by the user through the filesystem to store personal files. This allows the user to store personal files in an identifiable location.
Although a user may use personal directories to organize non-executable data files that are created and accessed by various software applications, personal directories do not readily lend themselves to management of the actual software application packages that are run by the user. As a result, software application packages often are installed for multi-user access on one or more common storage devices. A system administrator may install an upgrade and/or make changes to a software application package using the appropriate common storage device to make the upgrade/changes accessible to all system users.
In this common storage device configuration, system users may modify or inadvertently damage files used in the execution of one or more software application packages. In the case of modifications, the modifications to a file may be useful to one group of users while other users may need access to the original version of the file. User specific configuration of a software application package may be difficult to implement, if at all, in such circumstances. When certain files are inadvertently damaged by a user, the software application package will no longer be accessible to the remaining system users. Consequently, it may be difficult to maintain an operational version of the software application package without placing substantial limitations on the interaction between the users and the software application.
Another file management problem relates to the administration of multiple versions of a software application package. When a network administrator attempts to perform a system-wide upgrade of a software application package, it may not be desirable or possible for all of the user systems on the network to operate with the new version. For example, different versions of a software application package may be distinct and rely on separate software components, such as executable files, libraries, patches, support files, and the like. Consequently, the software components of a particular version of a software application package may be incompatible with legacy software or hardware that is found on certain user systems. Further, a user may refuse to learn how to operate a new version of a software application package, particularly if it offers minimal advantages to the user over a prior version. Finally, a system administrator may anticipate problems with the removal of an older version of a software application package from one or more of the user systems.
Access to multiple versions of the same software application may be necessary to accommodate one or more of the foregoing situations. Again, existing filesystems present the user with a large amount of unnecessary file and directory information relating to the multiple versions of the software packages. The presence of this unnecessary file and directory information effectively obscures the particular software application versions that the user attempts to access.